The present invention relates generally to microprogrammable processor-based data processing systems and more particularly to a method and apparatus for storing and retrieving from any virtual memory address, microinstructions which are directly executable by a central processing chip of the data processing system.
Mainframe computer systems are known which execute high level languages by translating the high level languages from a source code to an object code consisting of instructions which may be directly executed by hardware. The translation from the source code of the high level language to an object code of executable instructions is performed by a compiler. Also, many systems are known in which the compiler translates a higher level language into instructions which may be executed by firmware in either a horizontal process or a vertical process.
In some systems, such as the NCR virtual machine emulator, a high-level language is first translated into an intermediate language by a compiler, which intermediate language may be executed by firmware in an emulator mode in which the machine emulates another machine.
Data processing systems are known using microprocessors in an emulation architecture to compile and execute high-level languages. For instance, publication No. RM-0480 available from NCR Microelectronics Division, Colorado Springs, Colo., under the publication No. ST-2104-23 dated September, 1983, discusses the NCR/32 VLSI chip set for use as programmable building blocks for the implementation of high performance digital systems. This chip set includes the NCR/32-000 central processor chip for use in an emulation architecture wherein a high level language is compiled into virtual machine instructions which are stored in a main storage unit accessable by the central processor chip. The central processor chip further includes registers which are used as working registers for emulator chip instructions which reside in an instruction storage unit separate from the main storage unit. In this architecture, virtual machine instructions are fetched from the main storage unit, are decoded, and correspond:ng emulator chip instructions are fetched from the instruction storage unit such that the decoded instruction is emulated by the chip. This emulation requires, in most instances, many cycles of the central processing chip to execute each virtual machine instruction.